home *** CD-ROM | disk | FTP | other *** search
/ Turnbull China Bikeride / Turnbull China Bikeride - Disc 2.iso / STUTTGART / LANG / C / LIB / UNIXLIB37B / !UnixLib37 / Docs / ReadMe37a < prev    next >
Text File  |  1996-11-08  |  3KB  |  114 lines

  1.             UnixLib 37.a
  2.             ~~~~~~~~~~~~
  3.  
  4. There have been significant changes in UnixLib 3.7a, mostly for support of
  5. GCC 2.7.2 and GNAT, and most of these have been done by Nick Burrett and
  6. Peter Burwood.
  7.  
  8. Due to the size of the changes, this version should be considered a late
  9. beta-test version, rather than a full release. It is likely that there are
  10. problems, and that there will be a further release.
  11.  
  12. The biggest change in UnixLib is the ability for programs running under
  13. RiscOS 3.5 or later to place the heap into a dynamic area. This has two
  14. benefits - Dynamic areas are not re-mapped on a program switch, so the
  15. process switch is faster, and dynamic areas can be made virtual with
  16. virtualise, which increases the maximimum size of program.
  17.  
  18. Dynamic areas are controlled in two ways:
  19.  
  20. 1) The program can disable dynamic areas by defining the variable
  21. __dynamic_no_da. I.e. in one of the source files, put something like:
  22.  
  23. int __dynamic_no_da;
  24.  
  25. The precise type of the variable is irrelevant - it only needs to exist.
  26.  
  27. 2) A user can enable dynamic areas by defining an environmental variable of
  28. the form <prog_name>_heap, where <prog_name> is the leaf name of the program
  29. being executed. I.e for GCC 2.7.2, the user would type the following at the
  30. command line
  31.  
  32. *set gcc_heap ""
  33.  
  34. As with disabling dynamic areas, the value is irrelevant, the variable jusr
  35. needs to be defined.
  36.  
  37. Note that this may change - I think it should be gcc$heap, etc, but I have
  38. not told Nick yet.
  39.  
  40.  
  41.             Changes in UnixLib 3.7a
  42.             ~~~~~~~~~~~~~~~~~~~~~~~
  43.  
  44. As a rough summary, the following area have been changed:
  45.  
  46. * Signal handling
  47.  
  48. This has been tidies up and rationalised slightly
  49.  
  50. * Memory
  51.  
  52. malloc(), etc have been replaced by a much improved group of functions, that
  53. should have better characteristics, and less chance of loosing memory.
  54.  
  55. * Source control
  56.  
  57. All sources have been placed under RCS, so it should be harder to loose
  58. sources, and easier to keep track of who did what.
  59.  
  60. * General tidy up
  61.  
  62. All source code has been changed to pure ANSI format, with all K&R style
  63. functions changed appropriately.
  64.  
  65. All extern declarations in the source code have been deleted and replaced by
  66. appropriate header files.
  67.  
  68. Any code that was permamently #ifdef'ed out has been removed.
  69.  
  70. Several compiler warnings have been disabled by appropriate casts.
  71.  
  72. * resource
  73.  
  74. This is entirely new, and mostly consists of stub functions that implement
  75. unix style resource control.
  76.  
  77. * stdio
  78.  
  79. A minor problem with close() reporting an erroneous error has been cleared.
  80.  
  81. print() has been fiddled with, in an attempt to improve the printing of
  82. floating point numbers. It might help.
  83.  
  84. * sys
  85.  
  86. This has been the most changed area, mainly to add the ability to use dynamic
  87. areas under RiscOS 3.5+
  88.  
  89. * time
  90.  
  91. Again new, and provides functionality to control time and date, etc.
  92.  
  93. * unix
  94.  
  95. getcwd() has been improved for use with !Virtual
  96. General tidy up.
  97.  
  98.  
  99.             Rebuilding UnixLib
  100.             ~~~~~~~~~~~~~~~~~~
  101.  
  102. If you wish to rebuild UnixLib, you will need the Norcroft C compiler V4 or
  103. later, objasm, make, etc.
  104.  
  105. Before starting to rebuild, the file !startup should be executed to set a
  106. required environmental variable.
  107.  
  108. The makefile is in the Obj directory, and all objects, and the library will
  109. be built in this directory. The resulting library can be copied to the clib.o
  110. directory by the 'install' target.
  111.  
  112. Any modified sources or header files should be placed in the appropriate
  113. subdirectory under the dev directory.
  114.